package org.jeecg.modules.boc.enums;


/**
 *
 * 系统接口返回的编码以及返回的消息的配置
 * 接口返回编码定义为6位数：000000
 * 00开头表示请求处理成功；
 * 10开头表示账户错误；（比如，账号被禁，账号余额不足，账号权限不够，密码不正确等）
 * 20开头表示请求参数错误；（包括参数的类型，长度，编码，值，合法性）
 * 30开头表示业务错误；（表示业务没有按照正常流程处理，走了非正常流程，比如商品库存不足，查询的商品不存在，优惠券过期等）
 * 40开头表示系统错误；（系统内部错误）
 * @Classname DruidConfig
 * @Date 2021/03/01 17:08
 * @Author pengdz
 */
public enum ResultEnum {

    // TODO 00...处理请求成功
    SUCCESS("000000","请求处理成功!"),

    // TODO 10...账户错误
    ACCOUNT_FORMAT_FAIL("100000","账号不合法!"),

    // TODO 20...请求参数错误
    PARAM_PAGE_NUM_FAIL("200001","分页页码不合法!"),

    // TODO 30...业务错误-自定义
    LOGIN_OUT_TIME("300000","登录失效，请重新登录!"),
    TOKEN_ERROR("300001","获取token异常!"),
    USER_INFO_ERROR("300002","获取成员信息异常!"),
    CODE_ERROR("300003","获取code异常!"),
    SEND_MESSAGE_ERROR("300004","发送消息失败!"),

    // 移动端：code|token|userID|sendMsg
    SEND_MSG_USER_ID_NULL("3134001","发送消息时成员ID不得为空!"),
    SEND_MSG_USER_ID_MORE("3134002","发送消息时成员不超过1000个!"),//成员ID列表（消息接收者，多个接收者用‘|’分隔，最多支持1000个）。特殊情况：指定为@all，则向该企业应用的全部成员发送
    SEND_MSG_CONTEXT_NULL("3134003","发送消息时消息内容不得为空!"),
    SEND_MSG_CONTEXT_LONG("3134004","消息内容最长不超过2000个字节!"),

    // TODO 40...系统错误
    EXCEPTION("400000","系统繁忙,请稍后再试!"),

    // TODO 50...行信接口-全局错误码- D:\work\YYZC\行信文档\文档\附录 - 全局错误码.html
    WE_CHAT_0("0","请求成功"),
    WE_CHAT_1("-1","系统繁忙"),// -1 系统繁忙   服务器暂不可用，建议稍候重试。建议重试次数不超过3次。
    WE_CHAT_40001("40001","不合法的secret参数"),//secret在应用详情/通讯录管理助手可查看
    WE_CHAT_40003("40003","无效的UserID"),
    WE_CHAT_40013("40013","不合法的CorpID,需确认CorpID是否填写正确"),//需确认CorpID是否填写正确，在 web管理端-设置 可查看
    WE_CHAT_40014("40014","不合法的access_token"),//查看下方“方法排查”(错误码：40014    access_token参数错误。确认： 1）access_token的获取方式 2）access_token是否已过期)
    WE_CHAT_42001("42001","access_token已过期"),//access_token有时效性，需要重新获取一次
    WE_CHAT_40031("40031","不合法的UserID列表"),//指定的UserID列表，至少存在一个UserID不在通讯录中
    WE_CHAT_40032("40032","不合法的UserID列表长度"),//查看下方“方法排查”
    WE_CHAT_40033("40033","不合法的请求字符"),//不能包含uxxxx格式的字符
    WE_CHAT_40035("40035","不合法的参数"),//查看下方“方法排查”
    WE_CHAT_40056("40056","不合法的agentid"),
    WE_CHAT_40057("40057","不合法的callbackurl或者callbackurl验证失败"),
    WE_CHAT_40058("40058","不合法的参数 传递参数不符合系统要求"),
    WE_CHAT_40063("40063","参数为空"),//查看下方“方法排查”
    WE_CHAT_40066("40066","不合法的部门列表"),//部门列表为空，或者至少存在一个部门ID不存在于通讯录中
    WE_CHAT_40068("40068","不合法的标签ID"),//标签ID未指定，或者指定的标签ID不存在
    WE_CHAT_40086("40086","不合法的第三方应用appid"),//至少有一个不存在应用id
    WE_CHAT_40091("40091","secret不合法"),//可能用了别的企业的secret
    WE_CHAT_40094("40094","不合法的URL"),//缺少主页URL参数，或者URL不合法（链接需要带上协议头，以 http:// 或者 https:// 开头）
    WE_CHAT_41001("41001","缺少access_token参数"),
    WE_CHAT_41002("41002","缺少corpid参数"),
    WE_CHAT_41004("41004","缺少secret参数"),
    WE_CHAT_41009("41009","缺少userid参数"),
    WE_CHAT_41010("41010","缺少url参数"),
    WE_CHAT_41011("41011","缺少agentid参数"),
//    WE_CHAT_42001("42001","access_token已过期"),//access_token有时效性，需要重新获取一次
    WE_CHAT_44004("44004","文本消息content参数为空"),//发文本消息content为必填参数，且不能为空
    WE_CHAT_45001("45001","多媒体文件大小超过限制"),//图片不可超过5M；音频不可超过5M；文件不可超过20M
    WE_CHAT_45002("45002","消息内容大小超过限制"),//查看下方“方法排查”
    WE_CHAT_45024("45024","帐号数量超过上限"),//查看下方“方法排查”
    WE_CHAT_46004("46004","指定的用户不存在"),//需要确认指定的用户存在于通讯录中
    WE_CHAT_48002("48002","API接口无权限调用"),//查看下方“方法排查”
    WE_CHAT_50001("50001","redirect_url未登记可信域名"),//查看下方“方法排查”
    WE_CHAT_50003("50003","应用已禁用"),//禁用的应用无法使用API接口。可在”管理端-企业应用”启用应用
    WE_CHAT_60003("60003","部门ID不存在"),//需要确认部门ID是否有带，并且存在通讯录中
    WE_CHAT_60111("60111","UserID不存在"),//UserID参数为空，或者不存在通讯录中
    WE_CHAT_60123("60123","无效的部门id"),//部门不存在通讯录中
    WE_CHAT_81013("81013","UserID、部门ID、标签ID全部非法或无权限"),
    WE_CHAT_82002("82002","不合法的PartyID列表长度"),//发消息，单次不能超过100个部门
    WE_CHAT_82003("82003","不合法的TagID列表长度"),//发消息，单次不能超过100个标签
    WE_CHAT_301021("301021","参数userid无效"),//至少有一个userid不存在于通讯录中
    WE_CHAT_302019("302019","非法的回调token"),//有效长度3-32字节的数字字母组成
    WE_CHAT_4500000("4500000","参数错误"),
    WE_CHAT_4500002("4500002","获取用户信息错误"),
    WE_CHAT_4500004("4500004","api不可调用"),
    WE_CHAT_10001011("10001011","json格式不匹配"),//判断json格式是否有误
    WE_CHAT_10001012("10001012","非法的userid") //判断userid字段是否设置错误
    ;

    private ResultEnum(String key, String msg){
        this.key = key;
        this.msg = msg;
    }

    private String key;
    private String msg;

    public String key() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String msg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public static ResultEnum findBykey(String key)
    {
         ResultEnum [] resultEnums = values();
         for(ResultEnum resultEnum : resultEnums)
         {
             if(resultEnum.key().equals(key))
                 return resultEnum;
         }
         return null;
    }

}